page.tsx 2.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. import Box from "@/components/Box";
  2. import HeaderBack from "@/components/HeaderBack";
  3. import { getLocale, getTranslations } from "next-intl/server";
  4. interface ItemProps {
  5. text: string;
  6. }
  7. interface GroupRep {
  8. heads: ItemProps[];
  9. group: ItemProps[];
  10. tails: ItemProps[];
  11. title: string;
  12. }
  13. interface TermsProps {
  14. termsData: GroupRep[];
  15. }
  16. const PreventLaunderMoney = async () => {
  17. const t = await getTranslations("terms");
  18. const locale = await getLocale();
  19. const file = (await import(`/messages/${locale}.json`)).default;
  20. const target: TermsProps = file.terms;
  21. return (
  22. <>
  23. <HeaderBack />
  24. <main className={"main-header"}>
  25. <Box>
  26. <header className={"mb-[0.05rem] text-[0.26rem] font-bold text-[#fcde26]"}>
  27. {t("termsTitle")}
  28. </header>
  29. <h2 className={"mb-[0.05rem] font-bold"}>{t("termsTime")}</h2>
  30. {target.termsData.map((terms) => {
  31. return (
  32. <div
  33. key={terms.title}
  34. className={
  35. "mb-[0.18rem] border-b-[0.01rem] border-[#3f3f3f] pb-[0.18rem]"
  36. }
  37. >
  38. <h2 className={"mb-[0.05rem] font-bold text-[#fcde26]"}>
  39. {terms.title}
  40. </h2>
  41. {terms.heads.map((item, index) => (
  42. <p key={index} className={"my-[0.05rem]"}>
  43. {item.text}
  44. </p>
  45. ))}
  46. <ul className={"pl-[0.18rem]"}>
  47. {terms.group?.map((item, graphIndex) => {
  48. return (
  49. <li
  50. key={graphIndex}
  51. className={"my-[0.05rem] whitespace-pre-line"}
  52. >
  53. {item.text}
  54. </li>
  55. );
  56. })}
  57. </ul>
  58. {terms.tails.map((item, index) => (
  59. <p key={index} className={"my-[0.05rem]"}>
  60. {item.text}
  61. </p>
  62. ))}
  63. </div>
  64. );
  65. })}
  66. </Box>
  67. </main>
  68. </>
  69. );
  70. };
  71. export default PreventLaunderMoney;